package com.yindian.cos.easy.security.properties;

import com.yindian.cos.easy.security.constant.ProviderName;
import lombok.Data;
import org.springframework.http.HttpMethod;

/**
 * 新浪微博登录配置项
 *
 * @author zhangchuanhao
 * @create 2018/11/19
 */
@Data
public class WeiBoProperties {

    /**
     * 是否启用
     */
    private Boolean enable = false;

    /**
     * 登录地址不能和redirectUri一样否则拦截器无法放行该地址
     */
    private String loginUrl = "/api/social/" + ProviderName.WEIBO;

    /**
     * 请求方式
     */
    private String method = HttpMethod.GET.name();

    /**
     * 授权码地址
     */
    private String authorizationCodeUrl = "https://api.weibo.com/oauth2/authorize";

    /**
     * 申请应用时分配的AppKey
     */
    private String appKey;

    /**
     * 授权回调地址，站外应用需与设置的回调地址一致，站内应用需填写canvas page的地址。
     */
    private String redirectUri;

    /**
     * 网址域名
     */
    private String domain;

    /**
     * 申请scope权限所需参数，可一次申请多个scope权限，用逗号分隔。
     */
    private String scope;

    /**
     * client端的状态值。用于第三方应用防止CSRF攻击，成功授权后回调时会原样带回。请务必严格按照流程检查用户与state参数状态的绑定。
     */
    private String state = "easy_security";

    /**
     * 授权页面的终端类型
     */
    private String display;

    /**
     * 是否强制用户重新登录，true：是，false：否。默认false。
     */
    private Boolean forcelogin = false;

    /**
     * 授权页语言，缺省为中文简体版，en为英文版。英文版测试中
     */
    private String language;

    /**
     * access_token获取地址
     */
    private String accessTokenUrl = "https://api.weibo.com/oauth2/access_token";

    /**
     * 申请应用时分配的AppSecret。
     */
    private String appSecret;

    /**
     * 请求的类型，填写authorization_code
     */
    private String grantType = "authorization_code";

    /**
     * 获取用户信息地址
     */
    private String userInfoUrl = "https://api.weibo.com/2/users/show.json";

    /**
     * 拦截的执行顺序
     */
    private int order = 700;
}
